package com.qf.tealanguage.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.Map;

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　 ┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　  ┃
 * 　　┃　　　　　　 ┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━永无BUG!━━━━━━
 *
 * @Description:
 * @Author: 邢朋辉
 * @Date: 2022/12/6 09:36
 */
public class JedisUtil {
    private static JedisPool jedisPool;
    private static Jedis jedis;
    static {
        jedisPool=new JedisPool("39.101.78.216",6380);
        jedis=jedisPool.getResource();
        jedis.auth("zzjava");
    }

    //新增
    /**
     * String类型*/
    public static void addStr(String key,String val){
        Jedis jedis=jedisPool.getResource();
        jedis.auth("zzjava");
        jedis.set(key, val);
        jedisPool.returnResource(jedis);
    }
    public static void addStr(String key,String val,long seconds){
        Jedis jedis=jedisPool.getResource();
        jedis.auth("zzjava");
        jedis.setex(key,seconds,val);
        jedisPool.returnResource(jedis);
    }
    /**
     * Hash类型*/
    public static void addHash(String key,String field,String val){
        Jedis jedis=jedisPool.getResource();
        jedis.auth("zzjava");
        jedis.hset(key, field, val);
        jedisPool.returnResource(jedis);
    }
    public static void addHash(String key, Map<String,String> map){
        jedis.hset(key,map);
    }
    public static void addSet(String key, String val){
        jedis.sadd(key,val);
    }
    /**
     * Geo类型*/
    public static void addGeo(String key,double lon,double lat,String address){
        jedis.geoadd(key, lon, lat, address);
    }
    //删除
    /**
     * 删除指定的key*/
    public static void delKeys(String... keys){
        jedis.del(keys);
    }
    /**
     * 删除Hash中存在的数据*/
    public static void delHash(String key,String field){
        jedis.hdel(key,field);
    }
    public static void delSet(String key,String val){
        jedis.srem(key,val);
    }
    //查询
    /**
     * String类型*/
    public static String getStr(String key){
        return jedis.get(key);
    }
    public static Map getHash(String key){
        return jedis.hgetAll(key);
    }
    public static String getHash(String key,String field){
        return jedis.hget(key, field);
    }
    //验证
    public static boolean existsKey(String... keys){
        return jedis.exists(keys)>0;
    }
    public static boolean existsHash(String key,String field){
        return jedis.hexists(key, field);
    }
    public static boolean existsSet(String key,String val){
        return jedis.sismember(key, val);
    }
    /**
     * 设置有效期*/
    public static void expire(String key,long seconds){
        jedis.expire(key, seconds);
    }
}
